"""
题目: 设计一个学生管理系统，包含以下类和功能: 

1. 学生类(Student):
   - 属性: 学生姓名(name)、学生年龄(age)、学生成绩(score)
   - 方法: 
     - 初始化方法(__init__): 初始化学生的姓名、年龄和成绩。
     - 获取学生信息(get_info): 返回学生的姓名、年龄和成绩。

2. 班级类(ClassRoom): 
   - 属性: 班级名称(name)、学生列表(students)
   - 方法: 
     - 初始化方法(__init__): 初始化班级的名称和学生列表。
     - 添加学生(add_student): 接受一个学生对象作为参数，将学生对象添加到班级的学生列表中。
     - 移除学生(remove_student): 接受一个学生对象作为参数，将学生对象从班级的学生列表中移除。
     - 获取班级学生信息(get_students_info): 遍历班级学生列表，打印每个学生的姓名、年龄和成绩。

要求: 
1. 实现以上所述的属性和方法。
2. 在添加学生和移除学生的方法中，需要考虑添加或者移除的学生是否存在学生列表中。
3. 编写测试代码，创建班级对象，添加学生、移除学生，并打印班级学生信息。
"""


class Student:
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self.score = score

    def get_info(self):
        return f'{self.name}, {self.age}, {self.score}'


class ClassRoom:
    def __init__(self, name):
        self.name = name
        self.students = []

    # 添加学生 添加学生(add_student): 接受一个学生对象作为参数，将学生对象添加到班级的学生列表中
    def add_student(self, student):
        if student not in self.students:
            self.students.append(student)
            print(f"{student.name}添加成功")
        else:
            print(f'要添加的{student.name}已存在!!')

    # 移除学生(remove_student): 接受一个学生对象作为参数，将学生对象从班级的学生列表中移除
    def remove_student(self, student):
        if student in self.students:
            print(f'删除了{student.name}')
            self.students.remove(student)
        else:
            print(f'没有找到{student.name}')
    # 查
    def get_students_info(self):
        print(f'{self.name}学生信息为: ', end='')
        for i in self.students:
            print(i.get_info())


# 创建班级对象
s1 = Student('张三', 18, 59)
s2 = Student('张四', 17, 58)
cls = ClassRoom('1班')
# 添加学生
cls.add_student(s1)
cls.add_student(s1) # 重复添加
# 移除学生
cls.remove_student(s2)
# 打印班级学生信息
cls.get_students_info()
